// 这个是根据后台返回的菜单数据和本地的路由数据进行对比，对比之后得到用户的路由权限

export default function recursionRoutes(allRoutes = [], menulist = []) {
    // 声明一个数组用于存放计算后的路由

    let userRoutes = [];

    // 开始遍历和递归
    menulist.forEach(menuItem => {
        allRoutes.forEach(routeItem => {
            if (menuItem.title === routeItem.meta.key) {
                // 判断是否有子路由
                if (menuItem.children && menuItem.children.length > 0) {
                    // 递归字路由
                    routeItem.children = recursionRoutes(routeItem.children, menuItem.children)
                }
                userRoutes.push(routeItem)
            }
        })
    })
    return userRoutes
}